package com.nimitz.module.employee.domain;

import com.nimitz.common.annotation.Excel;
import com.nimitz.common.annotation.Excels;
import com.nimitz.common.annotation.Excel.Type;
import com.nimitz.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 离职申请表 emp_dimission
 */
@ApiModel(value = "EmpDimission对象", description = "离职申请表")
public class EmpDimission extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 离职id
     */
    @ApiModelProperty(value = "离职id")
    private Integer dimissionId;

    /**
     * 人员id
     */
    @ApiModelProperty(value = "人员id")
    private Integer employeeId;

    /**
     * 类型：0=辞职,1=辞退
     */
    @Excel(name = "类型", readConverterExp = "0=辞职,1=辞退")
    @ApiModelProperty(value = "类型")
    private String dimissionType;

    /**
     * 日期：0=辞职,1=辞退
     */
    @Excel(name = "日期")
    @ApiModelProperty(value = "日期")
    private String dimissionDate;

    /**
     * 原因
     */
    @Excel(name = "原因")
    @ApiModelProperty(value = "原因")
    private String dimissionReason;

    /**
     * 提交人
     */
    @Excel(name = "提交人")
    @ApiModelProperty(value = "提交人")
    private String dimissionSubmitName;

    /**
     * 提交日期
     */
    @Excel(name = "提交日期")
    @ApiModelProperty(value = "提交日期")
    private String dimissionSubmitDate;

    /**
     * 驳回人
     */
    @Excel(name = "驳回人")
    @ApiModelProperty(value = "驳回人")
    private String dimissionRejectName;

    /**
     * 驳回日期
     */
    @Excel(name = "驳回日期")
    @ApiModelProperty(value = "驳回日期")
    private String dimissionRejectDate;

    /**
     * 驳回原因
     */
    @Excel(name = "驳回原因")
    @ApiModelProperty(value = "驳回原因")
    private String dimissionRejectReason;

    /**
     * 审核人
     */
    @Excel(name = "审核人")
    @ApiModelProperty(value = "审核人")
    private String dimissionAuditName;

    /**
     * 审核日期
     */
    @Excel(name = "审核日期")
    @ApiModelProperty(value = "审核日期")
    private String dimissionAuditDate;

    /**
     * 人员对象
     */
    @Excels({@Excel(name = "人员名称", targetAttr = "employeeName", type = Type.EXPORT),
            @Excel(name = "警号", targetAttr = "employeeCode", type = Type.EXPORT)})
    @ApiModelProperty(value = "人员对象")
    private EmpEmployee dimissionEmployee;

    /**
     * 状态：0=待审核,1=审核中,2=已通过,3=未通过
     */
    @Excel(name = "状态", readConverterExp = "0=待审核,1=审核中,2=已通过,3=未通过")
    @ApiModelProperty(value = "状态")
    private String status;

    /**
     * 删除标志：0=存在,1=删除
     */
    private String delFlag;

    public Integer getDimissionId() {
        return dimissionId;
    }

    public void setDimissionId(Integer dimissionId) {
        this.dimissionId = dimissionId;
    }

    public Integer getEmployeeId() {
        return employeeId;
    }

    public void setEmployeeId(Integer employeeId) {
        this.employeeId = employeeId;
    }

    public String getDimissionType() {
        return dimissionType;
    }

    public void setDimissionType(String dimissionType) {
        this.dimissionType = dimissionType;
    }

    public String getDimissionDate() {
        return dimissionDate;
    }

    public void setDimissionDate(String dimissionDate) {
        this.dimissionDate = dimissionDate;
    }

    public String getDimissionReason() {
        return dimissionReason;
    }

    public void setDimissionReason(String dimissionReason) {
        this.dimissionReason = dimissionReason;
    }

    public String getDimissionSubmitName() {
        return dimissionSubmitName;
    }

    public void setDimissionSubmitName(String dimissionSubmitName) {
        this.dimissionSubmitName = dimissionSubmitName;
    }

    public String getDimissionSubmitDate() {
        return dimissionSubmitDate;
    }

    public void setDimissionSubmitDate(String dimissionSubmitDate) {
        this.dimissionSubmitDate = dimissionSubmitDate;
    }

    public String getDimissionRejectName() {
        return dimissionRejectName;
    }

    public void setDimissionRejectName(String dimissionRejectName) {
        this.dimissionRejectName = dimissionRejectName;
    }

    public String getDimissionRejectDate() {
        return dimissionRejectDate;
    }

    public void setDimissionRejectDate(String dimissionRejectDate) {
        this.dimissionRejectDate = dimissionRejectDate;
    }

    public String getDimissionRejectReason() {
        return dimissionRejectReason;
    }

    public void setDimissionRejectReason(String dimissionRejectReason) {
        this.dimissionRejectReason = dimissionRejectReason;
    }

    public String getDimissionAuditName() {
        return dimissionAuditName;
    }

    public void setDimissionAuditName(String dimissionAuditName) {
        this.dimissionAuditName = dimissionAuditName;
    }

    public String getDimissionAuditDate() {
        return dimissionAuditDate;
    }

    public void setDimissionAuditDate(String dimissionAuditDate) {
        this.dimissionAuditDate = dimissionAuditDate;
    }

    public EmpEmployee getDimissionEmployee() {
        return dimissionEmployee;
    }

    public void setDimissionEmployee(EmpEmployee dimissionEmployee) {
        this.dimissionEmployee = dimissionEmployee;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("dimissionId", getDimissionId())
                .append("employeeId", getEmployeeId())
                .append("dimissionType", getDimissionType())
                .append("dimissionDate", getDimissionDate())
                .append("dimissionReason", getDimissionReason())
                .append("dimissionSubmitName", getDimissionSubmitName())
                .append("dimissionSubmitDate", getDimissionSubmitDate())
                .append("dimissionRejectName", getDimissionRejectName())
                .append("dimissionRejectDate", getDimissionRejectDate())
                .append("dimissionRejectReason", getDimissionRejectReason())
                .append("dimissionAuditName", getDimissionAuditName())
                .append("dimissionAuditDate", getDimissionAuditDate())
                .append("dimissionEmployee", getDimissionEmployee())
                .append("status", getStatus())
                .append("delFlag", getDelFlag())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}
